汇编的问题

毛伯星 2019-07-13 07:35:25
assume cs:code
code segment
start:
push cs
pop ds

mov ax,0
mov es,ax

mov si,int7c
mov di,200h
mov cx,offset int7cend - offset int7c
cld
rep movsb

mov ES:[7ch*4],word ptr 200h
mov ES:[7ch*4+2],word ptr 0h

mov ax,4c00h
int 21h

int7c:


jmp short s

table dw cls

s:
push ax
push bx
push cx
push es

mov bl,al
mov bh,0
call table[bx] //这里跳转会到一个不知道为什么的地方,我这是哪里有错了跪求大佬指教

pop es
pop cx
pop bx
pop ax
iret

cls:
mov ax,0b800h
mov es,ax
mov bx,0
mov cx,2000
s1: mov es:[bx],byte ptr 20h
inc bx
mov es:[bx],byte ptr 0
inc bx
loop s1
ret







int7cend: nop

code ends
end start

以下是我的测试代码
assume cs:code
code segment
start:
mov al,0
int 7ch

mov ax,4c00h
int 21h
code ends
end start
...全文
110 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
毛伯星 2019-07-14
  • 打赏
  • 举报
回复
引用 5 楼 zara的回复:
加不了,什么表现?应该没问题的把,org 200h 语句 是单独的一行的。没解决的话,就别结帖吧。
解决了 之前搞错了把语句加到了标号前面
zara 2019-07-14
  • 打赏
  • 举报
回复
因为是要搬移到 0:200 处执行的,table的地址就不一样了。
zara 2019-07-14
  • 打赏
  • 举报
回复
加不了,什么表现?应该没问题的把,org 200h 语句 是单独的一行的。没解决的话,就别结帖吧。
毛伯星 2019-07-14
  • 打赏
  • 举报
回复
引用 3 楼 zara 的回复:
因为是要搬移到 0:200 处执行的,table的地址就不一样了。

我刚才试了一下,标号前面好像加不了org命令
毛伯星 2019-07-13
  • 打赏
  • 举报
回复
引用 1 楼 zara的回复:
int7c: 前要加 org 200h 吧
为什么要加org啊?
zara 2019-07-13
  • 打赏
  • 举报
回复
int7c: 前要加 org 200h 吧

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧