问题2.1
假定
设定AX=0000H, BX=0000H
问题
程序段中的指令
指令执行后AX中的值
指令执行后BX中的值
mov ax,4E20H
4E20H
0000H
add ax,1406H
6226H
0000H
mov bx,2000H
6226H
2000H
add ax,bx
8226H
2000H
mov bx,ax
8226H
8226H
add ax,bx
?
8226H
答案
? 应该等于044CH
解析
8226H + 8226H = 1044CH, 但是AX寄存器的长度是16位,高位字节无法存储在AX下,所以等于044CH。
问题2.2
假定
设定AX=0000H, BX=0000H
问题
程序段中的指令
指令执行后AX中的值
指令执行后BX中的值
mov ax,001AH
001AH
0000H
mov bx,0026H
001AH
0026H
add al,bl
0040H
0026H
add ah,bl
2640H
0026H
add bh,al
2640H
4026H
mov ah,0
0040H
4026H
add al,85H
00C5H
4026H
add al,93H
?
4026H
答案
?应该等于0058H
解析
al = al + 93H = C5H + 93H = 158H, 由于al寄存器的长度是8位,高位字节无法存储在AL下,所以AL = 58H.
检测点2.1
问题1: 写出每条汇编指令执行后相关寄存器中的值。
mov ax, 62627 AX = _______________
mov ah, 31H AX = _______________
mov al, 23H AX = _______________
add ax, ax AX = _______________
mov bx, 826CH BX = _______________
mov cx, ax CX = _______________
mov ax, bx AX = _______________
add ax, bx AX = _______________
mov al, bh AX = _______________
mov ah, bl AX = _______________
add ah, ah AX = _______________
add al, 6 AX = _______________
add al,al AX = _______________
mov ax, cx AX = _______________
答案
mov ax, 62627 AX = F4A3H
mov ah, 31H AX = 31A3H
mov al, 23H AX = 3123H
add ax, ax AX = 6246H
mov bx, 826CH BX = 826CH
mov cx, ax CX = 6246H
mov ax, bx AX = 826CH
add ax, bx AX = 04D8H
mov al, bh AX = 0482H
mov ah, bl AX = 6C82H
add ah, ah AX = D882H
add al, 6 AX = D888H
add al,al AX = D810H
mov ax, cx AX = 6246H
问题2: 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。
答案
mov ax, 2H
add ax, ax
add ax, ax
add ax, ax