assembly 解决在DEBUG.EXE中比较数字并输出最大数字的问题

hs1rzwqc  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(65)

在理解和如何解决DEBUG.EXE的问题方面存在问题。
任务:
在DEBUG调试器中,编写一个程序,允许您从键盘输入个位数,比较它们并输出其中最大的一个。保存该程序到磁盘。
研究文档和命令,可以用来解决问题,并编写程序代码,这是不可能拿出甚至工作代码.以前的尝试之一,通过DOSBox在DEBUG.EXE启动程序以崩溃告终.
应该如何编写代码,使程序能够工作,甚至能够在启动时执行任务中的上述操作?
我使用以下代码作为尝试之一:

n prog.com
a 100
mov ah, 01
int 21
mov al, dl
mov ah, 01
int 21
mov bl, dl
cmp al, bl
jae 116
mov dl, al
int 21
jmp 11a
mov dl, bl
int 21
ret

字符串

5f0d552i

5f0d552i1#

1.在操作系统的控制下创建一个新文件,调试可以将数据写入其中
第一个月
1.内存中的机器可执行代码从CS:0100开始
-a 100

Offset  Opcodes     Instruction     Description

0100    b4 01       mov ah,1        ; 1st digit, character input with echo      
0102    cd 21       int 21h

0104    88 c2       mov dl,al       ; save result in dl

0106    b4 01       mov ah,1        ; 2nd digit, character input with echo
0108    cd 21       int 21h

010a    88 c6       mov dh,al       ; save result in dh

010c    38 f2       cmp dl,dh       ; compare digits
010e    77 0a       ja 0116         ; if greater
0110    72 04       jb 0114         ; if smaller    

0112    b6 3d       mov dh,3dh      ; digits are equal, print '='
                    
0114    88 f2       mov dl,dh        

0116    b4 02       mov ah,2        ; print out digit
0118    cd 21       int 21h

011a    b8 00 4c    mov ax,4c00h    ; quit to dos
011d    cd 21       int 21h

字符串
1.保存到文件1fh(31)字节

-rcx
CX 0000
:1f


1.保存并退出

-w
Writing 0001f bytes
-q

相关问题