【发布时间】:2017-03-05 14:44:08
【问题描述】:
我对汇编编程非常陌生,老实说,这是我在计算机中编写的第一个代码(用于汇编)。
最大的数字显然是“9”,但它显示了一些字符(在键盘中不可用)。为什么这样?谢谢。
.model small
.stack 64
.data
array db 2,5,6,3,9,8
count db 7
large db ?
.code
main proc far
start:
mov ax,@data
mov ds,ax
lea si, array
mov dl,[si]
mov large, dl
inc si
dec count
l1:
mov al,[si]
cmp al,large
jg largefound
nochange:
inc si
dec count
cmp count,00h
jnz l1
largefound:
mov large,al
inc si
dec count
cmp count,00h
jnz l1
mov dl,large
add dl,30h
mov ah,02h
int 21h
mov ah,4ch
int 21h
main endp
end main
【问题讨论】:
-
你不能指望在汇编中编写源代码,编译并运行它,然后看到它工作(我承认它有时会发生在我身上......经过大约 20 年的 ASM 编码......有时)。即使它运行并输出正确的结果,也很可能代码的某些部分以与您预期不同的方式工作。您应该始终在调试器中打开新代码并逐条执行它,验证编写过程中使用的每个假设。很多都是假的。