血魔 发表于 2020-10-7 20:24

试分析下列程序

BUF   DB0BH
       MOVAL,BUF
       CALLFAR PTR HECA
HECAPROCFAR
       CMPAL, 10
       JCLP
       ADDAL, 7
LP:    ADDAL,30H
       MOVDL, AL
       MOVSH,2
       INT    21H
RET
HECAENDP
(1) 该程序是什么结构的程序?功能是什么? (2) 程序执行后,DL=?(3) 屏幕上显示输出的字符是什么?跪求大佬

weikun444 发表于 2020-10-7 21:02

条件吧,11的初始值,要么加30,要么加37,JC的意思忘了,还有后边的mov sh,2和int 21h,我也不是太清楚。

c03xp 发表于 2020-10-9 09:16

30h是0的ascii码,这里是判断如果小于10,就调用21h号中断打印这个字符(入参DL),至于如果大于等于10,就加7,因为要打印16进制,所以要把ascii 9到A之间的字符加进去
页: [1]
查看完整版本: 试分析下列程序