鱼C论坛

 找回密码
 立即注册
查看: 2769|回复: 5

[汇编作业] 实验10.3 有个问题呢

[复制链接]
发表于 2016-4-28 19:17:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 远山 于 2016-4-28 19:36 编辑

assume cs:code,ds:data,ss:stack

data segment
db 10 dup (0)
data ends

stack segment
db 16 dup (0)
stack ends

code segment
start:mov ax,12666
      mov bx,data
      mov ds,bx
      mov si,0
      call dtoc

      mov dh,8
      mov dl,3
      mov cl,2
      call show_str

      mov ax,4c00h
      int 21h

dtoc:push ax
        push cx
        push dx
        push si    ;用入栈指令来保存子程序中所用到的寄存器的内容。
        mov si,4  ;因为12666连续除以10所取得余数的顺序依次为66621,与我们所需要的相反,故si赋值为4,然后再减1定位到前一位,以此类推。

s:mov dx,0       ;初始化dx(我在想不初始化可不可以,一会试试)
  mov cx,10      
  div cx             ;ax/cx,商放在ax中,余数放在dx中。
  add dl,30h     ;将余数6与30h相加得到6对应的ASCII码。
  mov ds:[si],dl ;将ASCII码放入数据段的内存字节中。
  sub si,1           ;si-1,定位到前一字节。
  mov cx,ax       ;将商转存到cx中,用于jccxz指令判断商是否为零。
  jcxz s0            ;若cx=0,即商为零,则跳转,反之,继续执行。
  jmp short s    ;无条件跳转。

s0:pop si
   pop dx
   pop cx
   pop ax
   ret                ;取出寄存器值,返回主程序。

show_str:push ax
         push bx
         push cx
         push dx
         push si
         push di

         mov al,160
         mul dh
         mov bx,ax
         mov al,2
         mul dl   
         add bX,ax
         mov ax,0b800h
         mov es,ax
         mov di,0
         mov ah,cl

t:mov ch,0
  mov cl,ds:[si]
  jcxz t0
  mov es:[bx+di],cl
  mov es:[bx+1+di],ah
  inc si
  add di,2
  jmp short t

t0:pop di
   pop si
   pop dx
   pop cx
   pop bx
   pop ax
   ret

code ends
end start
10.3.png
第二个子程序有问题,本来应该在第八行显示,结果在第四行显示了,至于问题在哪我还没有找出来,路过的朋友有时间帮着看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-5 09:35:54 | 显示全部楼层
本帖最后由 兰陵月 于 2016-5-5 09:51 编辑

我原样拷贝你的程序~编译后运行~

没~~~有~~~错~~~啊~~~啊~~~啊~~啊~

运行结果
20652-e15612b5a9c49df19f3dc2b76158be6f.jpg

看来是你编译器的问题~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-5 15:05:31 | 显示全部楼层
兰陵月 发表于 2016-5-5 09:35
我原样拷贝你的程序~编译后运行~

没~~~有~~~错~~~啊~~~啊~~~啊~~啊~

十分感谢!我想了好久都觉得程序是对的,果然没有错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-11 11:15:49 | 显示全部楼层
显示的字符被后来显示的内容挤上去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-1 07:31:27 | 显示全部楼层
感谢分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-6-1 21:05:03 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-19 10:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表