汇编语言离线作业2

离线作业2答案

2.22、判断下列程序段跳转的条件 (1) XOR AX,1E1EH JE EQUAL

(2)TEST AL,10000001B JNZ THERE (3) CMP CX,64H JB THERE (1)(1) xor ax,1e1eh je equal

;AX=1e1eh(异或后为0) (2)test al,10000001b jnz there

;AL的D0或D7至少有一位为1 (3) cmp cx,64h jb there

;CX(无符号数)< 64h XOR 2.24、假设AX和SI存放的是有符号数,DX和DI存放的是无符号数,请用比较指令和条件转移指令实现以下判断: (1)若DX > DI,转到ABOVE执行; (2)若AX > SI,转到GREATER执行; (3)若CX = 0,转到ZERO执行;

(4)若AX-SI产生溢出,转到OVERFLOW执行; (5)若SI≤AX,转到LESS_EQ执行; (6)若DI≤DX,转到BELOW_EQ执行。 (1)若DX > DI,转到above执行 cmp dx,di

ja above ;=jnbe above (2)若AX > SI,转到greater执行 cmp ax,si

jg greater ;=jnle greater (3)若CX = 0,转到zero执行 cmp cx,0 jcxz zero jz zero

(4)若AX-SI产生溢出,转到overflow执行; cmp ax,di

jo overflow

(5)若SI≤AX,转到less_eq执行; cmp si,ax cmp ax,si jle less_eq jge less_eq

(6)若DI≤DX,转到below_eq执行。 cmp di,dx cmp dx,di jbe below_eq

jae below_eq (1)若D 2.26、按照下列要求,编写相应的程序段:

(1)起始地址为STRING的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。

(3)编写一个程序段,在DX高4位全为0时,使AX = 0;否则使AX = -1。 (6)已知字符串STRING包含有32KB内容,将其中的’$’符号替换成空格。 (7)有一个100个字节元素的数组,其首地址为ARRAY,将每个元素减1(不考虑溢出)存于原处。

(8)统计以 ’$’ 结尾的字符串SRTING的字符个数。

(1) (1) 起始地址为string的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。 mov si,0

mov dl,string[si] ;第1个字符送dl寄存器 mov si,5

mov dh,string[si] ;第6个字符送dh寄存器

(2) 从主存buffer开始的4个字节中保存了4个非压缩BCD码,现按低(高)地址对低(高)位的原则,将它们合并到DX中。 xor si,si ;si清零

mov al,buffer[si] ;第一字节 inc si

mov ah,buffer[si] ;第二字节 mov cl,4

shl ah,cl ;BCD码移到高半字节 or al,ah ;组合成压缩BCD码 mov dl,al ;存入dl寄..

inc si

mov al,buffer[si] ;第三字节 inc si

mov ah,buffer[si] ;第四字节 mov cl,4

shl ah,cl ;BCD码移到高半字节 or al,ah ;组合成压缩BCD码 mov dh,al ;存入dh寄..

(3) 编写一个程序段,在DX高4位全为0时,使AX = 0;否则使AX = -1。 test dx,0f000h jz zero mov ax,-1 jmp done zero: mov ax,0 done: ret

(4) 有两个64位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成buffer1-buffer2功能。 lea bx,buffer1 lea dx,buffer2 mov cx,8 ;8个字节 xor si,si ;si=0 clc ;CF=0

(5) 假设从B800h : 0开始存放有100个16位无符号数,编程求它们的和,并把32位的和保存在DX.AX中。 mov ax,0b800h mov ds,ax ;段地址

xor si,si ;地址偏移量si=0 xor dx,dx ;和的高字dx=0 mov cx,99 ;加的次数 mov ax,[si] ;第一个数

again: inc si ;指向下一个字单元 inc si

add ax,[si] ;加下一个数 jnc noc ;无进位转

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4