借用了实验13第三题对行数处理的思路,这里也把地址存到内存里面,利用循环依此取出数据并处理,保存为字符串,用int 10h的2号子程序和9号dos功能调用定位光标和显示字符串。
assume cs:code
data segment
str db '**/**/** **:**:**$'
adr db 9,8,7,4,2,0
code segment
start: mov ax,data
mov ds,ax
mov si,offset str
mov bx,offset adr
mov cx,6
next: mov al,[bx]
out 70h,al
in al,71h ;取得相应数据
push cx
mov cl,4
mov ah,al ;放ah暂存
shr al,cl ;al中存放十位
and ah,0fh ;ah中存放个位
or ax,3030h;转换成ascii码
;这样安排十位和个位,是因为下面可以用ax直接存放到si指向的单元
;ax作为整体存放时,ah中的数据会存放到高地址单元
;如果用ah存放十位,al存放个位,则数据刚好倒序存放了。
mov [si],ax ;保存
add si,3 ;修改指针
inc bx
pop cx
loop next
mov ah,2
mov bh,0
mov dh,12
mov dl,31
int 10h ;int 10h的2号子程序设置光标位置
mov dx,0
mov ah,9
int 21h ;9号dos功能调用,显示字符串
mov ax,4c00h
int 21h
code ends
end start
- [游客] 感谢 11/15 22:10
- [游客] 把:DD 5937000,改成:DD 4294967295,你的错误,立刻就暴露出来。呵呵 05/19 18:30
- [游客] 计算人均时,是DD型除以DW型。把DD型的最大值代进去,你的程序,就溢出了。 05/19 18:28
- [游客] 注意不溢出的除法。 05/19 18:25
- [游客] 老师好啊~ 06/28 11:01
- [longphui] 谢谢 09/03 20:10
- [longphui] 谢谢 09/03 16:23
- [longphui] 谢谢 09/02 15:26
- [longphui] 谢谢 09/02 09:13
- [sissim] 恩恩,谢谢指正 01/11 18:24
- [even3] 亲,你好。。。这边有一个汇编语言程序,但是就是不知道哪里出了问题,问了很多人,都不知道想麻烦您一下, 05/16 20:48
- [mcjfo] 楼主可以帮我解决这个问题吗?谢谢! 为什么它会跳过JMP DD 指令不执行啊 小弟搞了好久抖没 06/08 06:50