首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

新手的汇编有关问题

2013-07-08 
新手的汇编问题assume cs:codedate segmentdb hello worlddate endszhan segmentdb 10 dup (0)zhan ends

新手的汇编问题
assume cs:code

date segment
db 'hello world'
date ends

zhan segment
db 10 dup (0)
zhan ends

code segment
  start:mov ax,0b800h
mov es,ax
mov di,1680
call year
mov ax,date
mov ds,ax
mov bx,0

mov cx,11
      s:mov al,[bx]
mov ah,01110001b
mov es:[di],ax
inc di
inc di
inc bx
   loop s
mov ax,4c00h
int 21h


   year:
mov ax,zhan
mov ss,ax
mov sp,10
push cx
mov bl,111
mov cx,10
     s1:call num
inc bl
add di,10
   loop s1
pop cx
ret 


    num:
        mov ax,zhan
mov ss,ax
push cx
     s3:mov ax,10
        div bl
mov cx,ah
mov dl,al
mov dh,01110001b
mov es:[di],dx
jcxz s4
  loop s3
s4:pop cx
ret


code ends
end start
需要结果依次显示111   112    112等,最后显示hello world。不知道,哪里有错。初学,对这些用的还很生疏,望赐教! 汇编
[解决办法]
如果楼主是指语法错误的话是第53行:
mov cx,ah
应该把AH改成AX,或者改CX
[解决办法]
1. call 指令是需要使用堆栈的, 你的堆栈需要在 call 之前就建立好. 在函数里面就不要再反复的取初始化它了.
2. 没看到你的程序里面有输出啊? 怎么能显示 111, 112, hello world?
[解决办法]

引用:
如果楼主是指语法错误的话是第53行:
mov cx,ah
应该把AH改成AX,或者改CX


正解

热点排行