永发信息网

汇编语言取代码长度问题

答案:2  悬赏:20  手机版
解决时间 2021-02-26 02:15
  • 提问者网友:wodetian
  • 2021-02-25 22:57
新手问题,如下:
s: cmp byte ptr [si],0
je ok
mov al,[si]
mov es:[di],al
inc si
add di,2
mov bx,offset s-offset ok
int 7ch
ok: mov ax,4c00h
int 21h
倒数第四行的问题,想要取得s到ok的长度,为什么是s-ok,而不是ok-s?百思不得其解啊
最佳答案
  • 五星知识达人网友:青灯有味
  • 2021-02-25 23:30
s到ok的长度,应该是 OK-S。

比如 S = 100H,OK = 200H,长度,显然是 200-100。
全部回答
  • 1楼网友:污到你湿
  • 2021-02-25 23:58
masm判断数据长度方法 1. 指令中使用的寄存器长度,比如mov ax,mem,明显men就是16位的 2. 代码前面assum伪指令指定的数据长度,如assum bx:byte ptr,直到取消前编译器都认为bx是存放8位数据的指针。 3. 当指令的所有操作数都为内存操作数时,必须指定其长度。 你明显违反最后一条规定,16位程序默认的是16位的指针,而不是指针指向的数据默认为16位。 正确的是mov word ptr ds:[bx],100h
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯