【问题标题】:assembly code in 80868086 中的汇编代码
【发布时间】:2017-05-07 04:51:10
【问题描述】:

我需要有关此汇编语言代码的帮助

.model small
.stack 100h
.DATA
STRING1 db 5 DUP (?),"$"
.code
main proc

    MOV AX, @DATA
    MOV ES, AX ; initialize ES
    LEA DI,[STRING1]         ; assume BYTE string
    CLD
    MOV AL, 'A'
    STOSB                   ; store 1st byte of A
    STOSB                   ; store 1st byte of A

    lea dx,STRING1
    mov ah,09h
    int 21h

mov ah,4ch
int 21h

main endp
end main

这条指令是显示两个“aa”作为输出,但它也向我展示了这个:

output

【问题讨论】:

  • STOSB 结尾的整个第一块代码可以替换为:mov WORD PTR [string1], 'AA'。这更简单、更快、更不容易混淆。
  • 可能会尝试在运行时以编程方式处理字符串,这只是演示问题的示例。
  • 我不得不使用字符串指令来完成作业,但感谢您的输入

标签: assembly x86-16 tasm


【解决方案1】:

Int 21/AH=09h 需要 DS:DX 中字符串的地址。你忘了初始化DS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多