微机原理 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=返回值

 

 

 

 
 
posted @ 2022-01-17 21:09  取鱼  阅读(152)  评论(0)    收藏  举报