用汇编语言编写一个让“123456”依次向左循环左移显示的程序。

用汇编语言编写一个让“123456”依次向左循环左移显示的程序。,第1张

主要程序片段如下:

..............

disBuffer db '123456$' 要显示的字符串

col db 5在屏幕上的位置

row db 10

..............

main:

mov ax,200h

mov bx,0

mov dl,[col]

mov dh,[row]

int 10h以上几行用于定位当前光标位置

lea dx,disBuffer

mov ax,0900h

int 21h显示字符串

call funcRL

mov cx,1延时控制,可以根据要求设置1、2、3……

call funcDelay

mov ah,0bh

int 21h看下键盘有无输入,如果有拿族行就退出程序

or al,al

jz main没有输穗宏入,去继续循环

mov ax,4c00h

int 21h

funcRL: 左移一位的子程序

push ax

push cx

push si

mov cx,5

lea si,disBuffer

mov bl,[si]

inc si

RlLoop:

mov al,[si+1]

mov [si],al

inc si

loop RlLoop

mov [si],al

pop si

pop cx

pop ax

ret

funcDelay: 延时子程序,如果没有延时,太快了消哗,无法看清字符

push bx

push cx

push dx

dLoop1:

mov bx,1000h

dLoop2:

mov dx,0ffffh

dLoop3:

sub dx,1

jnz dLoop3

sub bx,1

jnz dLoop2

loop dLoop1

pop dx

pop cx

pop bx

ret

程序没有调试,大意如些。希望能帮到你。

循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。设有数据说明:

a=01111011,循环左移2位 正确结果: 11101101

过程:

b=a>>(8-2) 用来得到正常左移丢失的位和循环移位后其正确位置 b=00000001

a=a<<2左移 a=11101100

a=a|ba=11101101

如果不是用中间变量 a=(a>>(8-2))|(a<<2)

总长度N(8 16 32)

循环左移n: (a>>(N-n))|(a>>n)

循环右移n: (a<<(N-n))|(a>闹知毕>n)

C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能,灵活掌握是用C程序编写系统液芹程序的基础。

扩展资料:

C语言高效编程技巧:

一:以空间换时间

计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题

二:猛搜数学方法解决问题

数学是计算机之母,没有数学的依据和基础,就没有计算机发展,所以在编写程序的时候,采用一些数学方法会对程序的执行效率有数量级的提高。

三:使用位 *** 作

实现高效的C语言编写的第三招----使用位 *** 作,减少除法和取模的运算。

在计算机程序中,数据的位是可以 *** 作的最小数据单位,理论上可以用“位运算”来完成所有的运算和 *** 作。一般的位 *** 作是用来控制硬件的,或者做数据变换使用,但是,灵活的位 *** 作可以有效提高程序运行的效率。

参考资料来源:百度百科-c语言程序设计

#include<stdio.h>消返

#define N 10

void fun(int *a,int n,int x) { int i,j,k

for ( i=0i<xi++ ) { k=a[0]for ( j=0j<n-1j++ ) a[j]=a[j+1]a[n-1]=k}

}

void main() { int a[N],i,x

printf("Enter %d integers: "姿闭,N)for ( i=0i<Ni++ ) scanf("%d",&a[i])

printf("Enter x: "迹桥裂)scanf("%d",&x)

fun(a,N,x)

printf("After Circle left shift %d bit: ",x)for ( i=0i<Ni++ ) printf("%d ",a[i])

printf("\n")

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12430960.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存