来看看这个汇编有什么问题?al值是如何变化的??

来源:百度知道 编辑:UC知道 时间:2024/06/17 16:09:25
-a

0B1A:0100 MOV BX,011a

0B1A:0103 mov ah,02

0B1A:0105 mov cx,18

0B1A:0108 mov al,61

0B1A:010A mov dl,[bx]

0B1A:010C cmp dl,al

0B1A:010E jb 0113

0B1A:0110 SUB dl,20

0B1A:0113 int 21

0B1A:0115 int 21

0B1A:0117 inc bx

0B1A:0118 loop 010a

0B1A:011A int 20

0B1A:011C db"T3h2i1 6s4 i5s a4 example!"

0B1A:0136

-g

? 44HHII SS IISS AA EEXXAAMM
Program terminated normally
--a

0B1A:0100 MOV BX,011a

0B1A:0103 mov ah,02

0B1A:0105 mov cx,18

0B1A:0108 mov al,61

0B1A:010A mov dl,[bx]

0B1A:010C cmp dl,al

0B1A:010E jb 0113

0B1A:0110 SUB dl,20

0B1A:0113 int 21

0B1A:0115 mov dl,al

0B1A:0117 int 21

0B1A:0119 inc bx

0B1A:011A loop 010a

dos功能调用的2号功能执行后,AL=DL,也就是它显示的字符。把cmp dl,al改成cmp dl,61就不会出现乱码了。另外,字符串首地址要改成正确的地址,如本例,BX应该是11E。