反向打印一次一个字符的消息 订购。将程序命名为HELLO4.ASM。 (使用“推”和 “流行”
保留另一个保存邮件的变量 使用“push”和“pop”函数反转顺序。然后使用其中任何一个打印此消息 功能9或功能40h。将此程序命名为HELLO5.ASM。
这是我关于汇编语言的任务,这是我到目前为止的工作。但它没有反转。
; (Hello4)
.386
.model flat,stdcall
.stack 4096
.data
aName BYTE "Hello, DOS Here!$"
nameSize = ($ - aName) - 1
.code
main PROC
mov ecx,nameSize
esi,0
L1: movzx eax,aName[esi]
push eax
inc esi
loop L1
mov ecx,nameSize
esi,0
L2: pop eax
mov aName[esi],al
inc esi
loop L2
mov ah,9
int 21h
main ENDP
end main
答案 0 :(得分:0)
尝试在代码中修复一些oops并手动初始化数据段:
; (Hello4)
.386
.model flat,stdcall
.stack 4096
.data
aName BYTE "Hello, DOS Here!$"
nameSize = ($ - aName) - 1
.code
main PROC
mov ax,@data ;◄■■ INITIALIZE DATA
mov ds,ax ;◄■■ SEGMENT MANUALLY.
mov ecx,nameSize
esi,0 ;◄■■ MOV ESI,0
L1: movzx eax,aName[esi]
push eax
inc esi
loop L1
mov ecx,nameSize
esi,0 ;◄■■ MOV ESI,0
L2: pop eax
mov aName[esi],al
inc esi
loop L2
mov ah,9
int 21h
main ENDP
end main
在之前的更改之后,它对我起作用并向后显示字符串。