微机原理小程序实验

1.减法指令sub与取补指令neg

mov ax,0f12H  ;
mov bx,0f14h  ;
sub ax,bx     ;
neg ax        ;
hlt

neg指令取补码后ax为0002H

2.移位指令ror

mov ax,0f12H  ;
mov cx,0f10h  ;
ror ax,cl     ;
hlt

ror 循环右移指令

格式:ror opr,cnt

对标志位的影响:of,cf

将给定的操作数循环右移cnt次。在一词意为中,目的操作数的最低位移入cf,其余位均向右移位,并且最低位移入最高位。

3.统计16位二进制中“1”的个数

mov ax,1289h  
mov bl,00h     
mov cx,0010h    
aa:shl ax,1      
jnc next          
inc bl            
next:loop aa        
hlt

4.统计16位二进制中“0”的个数

mov ax,1289h  
mov bl,00h     
mov cx,0010h    
aa:shl ax,1      
jc next          
inc bl            
next:loop aa        
hlt

 5.al的值为:(daa指令、inc指令和loop指令的应用)

mov cx,0008h
mov bl,01h
xor al,al
aa:add al,bl
daa
inc bl
loop aa
hlt

 

daa指令:加法的十进制调整指令

格式:daa

操作:如果af为1,或者al寄存器的低4位在十六进制数a~f中,则al寄存器内容加上06h,并且将af置1。如果cf为1,或者al寄存器的高4位在十六进制数a~f中,则al寄存器内容加上60h,并且将cf置1。

6.push指令与物理地址

mov ax,1000h
mov ss,ax
mov sp,0200h
mov bx,3489h
push bx
hlt

7.1+2+3+...+100

  mov cx,0064h
  mov bx,0001h
  xor ax,ax
  aa:add ax,bx
  inc bl
  loop aa
  hlt

 8.第三章练习题2

mov ax,2000h
mov ds,ax
mov bx,2030h
mov si,bx
push bx
pop cx
xchg ax,si
add ax,0f01h
cwd
mov bl,0ffh
mul bl
mov al,01h
imul bl
hlt

  9.第三章练习题7

mov ax,1234h
cmp ax,8234h
jc next1
cbw
next1:mov bx,9876h
cmp bx,ax
jb next2
shr ax,1
next2:and bx,1010h
hlt

   10.第三章练习题10(写出顺序执行以下指令后,DX和AX的内容)

mov ax,1987h
mov dx,034ah
mov cl,04h
shl dx,cl
mov bl,ah
shl ax,cl
shr bl,cl
or dl,bl
hlt

   11.第三章练习题12

mov ax,6789h
mov cx,0010h
xor ax,ax
jnz next
shr cx,1
rol ax,cl
jmp next1
next:ror ax,cl
next1:hlt

   12.第三章练习题13

   mov cx,0007h
mov bl,11h
and al,00h
aa:add al,bl
daa
inc bl
loop aa
hlt

   13.第三章练习题14

mov ax,8456h
mov [1000h],ax
mov bx,3634h
sub bx,[1000h]
jns next
neg bx
next:hlt

 14.第三章练习题15

mov dx,1234h
mov ax,5678h
sub ax,3210h
sbb dx,7654h
hlt

 15.第三章练习题16

mov dx,1234h
mov ax,5678h
add ax,3210h
adc dx,7654h
hlt

16.第三章练习题17

xor ax,ax
mov di,1000h
mov cx,0064h
cld
rep stosb 
hlt

17.第三章练习题18

mov ax,23h
mov di,1000h
mov cx,0064h
cld
rep stosb  
hlt

猜你喜欢

转载自blog.csdn.net/xiaolizi_331/article/details/120969574