我有一份来自我的作业的作业.系统组织.主题,不幸的是,在汇编语言方面,我有点新鲜.我应该编写一个程序,分别显示数字0,2,4,6,8,10.我该怎么做?
也许这会回答我的问题:(反应请)
.model small .stack 100H .data .code call proc mov cx,5 mov dx,0 L1: mov bx,2 add dx,bx mov ah,02h loop L1 int 21 endp
paxdiablo.. 5
去看你的讲师和/或导师,并征求意见.这就是他们的目的.你还没有给我们任何地方靠近足够的信息来帮助你.
这就是我认为您的ABCD计划应该是什么样子.我建议你用它作为基线试图制作一个0 2 4 ...版本.
model proc .stack 100H .data .call main proc mov cx,10 ; 10 loops only. mov dx,40h ; start dx at 'A' - 1. L1: inc dx ; move to next character. mov ah,02h ; int 21,02 is print character. int 21h loop L1 ; loop until cx is 0 mov ax,4c00h ; int 21,4c is exit with al holding exit code. int 21 endp
如果你至少要转换它,发布代码,我们会批评你做了什么.
如果你被教导了它,它永远不会持续,但是,如果你学到了什么,它会永远存在(尽管有酒精添加的braincells :-).
Int 21
是DOS中断,允许汇编程序使用各种DOS函数.它在概念上是一个基于AH
寄存器的巨大的switch语句,这就是为什么你会看到类似的东西Int 21 Fn 02
,这意味着执行mov ah,2
后跟int 21
.
Int 21 Fn 02
将获取内容DL
并将其输出到屏幕.所以顺序:
mov ah,02h mov dl,41h int 21h
将输出'A'字符(0x41).
同样,Int 21 Fn 4c
将退出当前运行的进程.
去看你的讲师和/或导师,并征求意见.这就是他们的目的.你还没有给我们任何地方靠近足够的信息来帮助你.
这就是我认为您的ABCD计划应该是什么样子.我建议你用它作为基线试图制作一个0 2 4 ...版本.
model proc .stack 100H .data .call main proc mov cx,10 ; 10 loops only. mov dx,40h ; start dx at 'A' - 1. L1: inc dx ; move to next character. mov ah,02h ; int 21,02 is print character. int 21h loop L1 ; loop until cx is 0 mov ax,4c00h ; int 21,4c is exit with al holding exit code. int 21 endp
如果你至少要转换它,发布代码,我们会批评你做了什么.
如果你被教导了它,它永远不会持续,但是,如果你学到了什么,它会永远存在(尽管有酒精添加的braincells :-).
Int 21
是DOS中断,允许汇编程序使用各种DOS函数.它在概念上是一个基于AH
寄存器的巨大的switch语句,这就是为什么你会看到类似的东西Int 21 Fn 02
,这意味着执行mov ah,2
后跟int 21
.
Int 21 Fn 02
将获取内容DL
并将其输出到屏幕.所以顺序:
mov ah,02h mov dl,41h int 21h
将输出'A'字符(0x41).
同样,Int 21 Fn 4c
将退出当前运行的进程.