微机原理 debug
1.asm 文件
ah 的输入输出指令大全 https://blog.csdn.net/chinazeze/article/details/1735621
1 data segment 2 x db 1 3 y db 2 4 sum db ? 5 string db "The result of x+y=$" 6 data ends 7 8 code segment 9 assume cs:code,ds:data 10 start: 11 mov ax,data 12 mov ds,ax 13 14 mov dx,offset string 15 mov ah,09h 16 int 21h 17 18 mov al,x 19 add al,y 20 mov sum,al 21 22 add al,30h 23 mov dl,al 24 mov ah,02h 25 int 21h 26 27 mov ah,4ch 28 int 21h 29 30 code ends 31 end start
1 汇编语言 debug 解释 2 mov ax,data MOV AX,076A AX=076A 3 mov ds,ax MOV DS,AX DS=AX=076A 4 mov dx,offset string MOV DX,0003 把string在段里的偏移地址送给dx --->0003 5 x 存储在076A:0000 值为01 6 y 存储在076A:0001 值为02 7 sum 存储在076A:0002 值为00 8 string 存储在076A:[0003,00016) 值为The result of x+y=$ 9 mov ah,09h ah表示ax的高位 09移入ah 10 int 21h DOS的中断调用 11 执行中断指令09 12 ah=09 13 功能:显示字符串 14 调用参数:DS:DX=串地址 '$'结束字符串 15 16 导致:根据DX=串地址 0003,显示字符串string 17 汇编语言 debug 解释 18 mov al,x MOV AL,[0000] 把[0000]存储的值1 移入 al-->01 19 add al,y ADD AL,[0001] 把[0001]存储的值2 加入 al-->03 20 mov sum,al MOV [0002],AL 把al存储的值3 移入 存储单元[0002],sum中 21 22 add al,30h ADD AL,30 把AL存储的值03 加入30 al -->33 //补充 33是16进制的33H,10进制是16*3+3=51,ASCII值51为3,为了在显示器上输入字符3 23 mov dl,al MOV DL,AL 把al中的内容放进dl中以便以后显示出来 24 mov ah,02h ah表示ax的高位 02移入ah 25 int 21h DOS的中断调用 26 27 执行中断指令02 28 ah=02 29 功能:显示输出 30 调用参数:DL=输出字符 31 32 导致:就会把dl中的字符3,显示出来 33 mov ah,4ch 34 int 21h DOS的中断调用 35 执行中断指令4C 36 ah=4c 37 功能:带返回码结束 38 调用参数:AL=返回值


浙公网安备 33010602011771号