一道课后题---字符显示的新手问题
时间:2011-11-13
来源:互联网
在其他论坛看到的问题,解决不了,用于显示字符,代码如下:
Assembly code
单步调试的时候发现在 pop cx之后的mov语句总是不正确,显示要mov的值为F0,但cx寄存器的值还是0020h
不懂这是为什么,谢谢大家帮忙~~
人穷,分就少一点了~
Assembly code
assume cs:code;实验10.1 data segment db 'welcome to masm!', 0 data ends code segment start: mov dh, 15;行 mov dl, 12;列 mov cl, 2 mov ax, data mov ds, ax mov si, 0 call show_str mov ax, 4c00h int 21h show_str: mov ch, 0 mov al, 2 mul dl mov di, ax mov al,0A0h mul dh mov bx, ax mov ax, 0b800h mov es, ax s: push cx;感觉这边cx压栈和后面的出栈有问题,但是不懂为什么 mov es:[bx+di+1], cl mov cl, [si] jcxz ok mov es:[bx+di], cl inc si add bx, 2 pop cx jmp s ok: ret code ends end start
单步调试的时候发现在 pop cx之后的mov语句总是不正确,显示要mov的值为F0,但cx寄存器的值还是0020h
不懂这是为什么,谢谢大家帮忙~~
人穷,分就少一点了~
作者: hakuabby 发布时间: 2011-11-13
写少了一点,栈空间申请和初始化为:
stack segment
db 16 dup(0)
stack ends
mov ax,stack
mov ss,ax
mov sp,16
stack segment
db 16 dup(0)
stack ends
mov ax,stack
mov ss,ax
mov sp,16
作者: hakuabby 发布时间: 2011-11-13
我把你的程序执行了下,可以正常显示字符串,没有什么问题
作者: abgood 发布时间: 2011-11-13
Assembly code
;原程序写得没章法,也没个注释,让人看不懂 ;下面的程序等价LZ的程序 ;功能:在屏幕上指定位置和指定颜色输出一个串。 stack segment para stack 'STACK' db 16 dup(0) stack ends assume cs:code;实验10.1 data segment db 'welcome to masm!', 0 data ends code segment start: mov ax, data ;首先应是初始化要用的段址寄存器 mov ds, ax ;dx = ax mov ax, 0b800h ; mov es, ax ;es = 0b800h mov dh, 15 ;行 mov dl, 12 ;列 mov cl, 2 ;颜色值 mov si, 0 ;要输出字符缓冲区的下标,首地址为0 ;call show_str(原文是子程序,但感觉还不如不用子程序好) mov al, 2 ; mul dl ;ax = 2 * 12 = 24 mov di, ax ;di = ax = 2 * 12 = 24 mov al,0A0h mul dh ;ax = 0A0h * 15 mov bx, ax ;bx = 0A0h * 15 = 150 s: mov es:[bx+di+1], cl ;着颜色 mov al, [si] ;从字符串读一个字符给al test al,al ;al = 0 ? jz ok ;yes,jump mov es:[bx+di], al ;else copy to screen inc si ;调整串指针指向下一个字节 add bx, 2 ; jmp s ok: ;exit: mov ax, 4c00h int 21h show_str: code ends end start
作者: gsy999 发布时间: 2011-11-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28