王爽汇编第二版,实验5 第五小问,答案中的s标号后面的几个ax 为什么不能改成al 呢?
(5)程序如下,编写code段中代码,将a段和b段中的数据依次相加,将结果存到C段中。答案是assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start:
mov ax,a
mov ds,ax
mov ax,b
mov es,ax
mov ax,c
mov ss,ax
mov bx,0
mov cx,8
s: mov ax,
mov ss:,ax
mov ax,es:
add ss:,ax
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
谁能给我详细的解释一下s循环体(讲到bx变成2就好了)?我没有鱼币了,谢谢了 觉得代码好像有问题,mov ss:,ax这样行吗? 因为栈段寄存器是以16位寄存器进行存储的,例如:你要写入26H入栈,那么在栈段中,26H以0026H进行存储的,简单说在栈段里没有高地位之分,不管是入栈还是出栈都是16位,所以为了与栈段匹配,必须要16位寄存器。
推荐软件:核桃哥学习笔记1.3版——智能判断填空题
http://bbs.fishc.com/thread-23229-1-1.html
页:
[1]