下面的程序实现一次用内存0:0-0:15单元中的内容改写程序中的数据,完成程序:
assume cs:codesg
codesg segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
dw 0,0,0,0,0
start:
mov ax,cs
mov ss,ax
mov sp,__
mov ax,0
mov ds,ax
mov bx,0
mov cx,8
s:
push [bx]
________
add bx,2
loop s
mov ax,4c00h
int 21h
codesg ends
end start
此题出自王爽的《汇编语言》第六章的检测点6.1,想问下横线处的应该填什么,在网上找到的答案是:mov sp,1ah和pop cs:[bx]
我想问各位高手,sp后的数值应该是十进制,还是十六进制。书上的一直用的是十进制,而答案上的却是十六进制。此题的sp应该是多少,为什么?
后面的pop cs:[bx],又是为什么?谢谢解答
几个关于汇编语言的问题 急用 谢谢
1.loop循环功能应配合哪个缓存器 CX寄存器 LOOP指令,是循环指令,循环次数由计数寄存器CX指定。是否执行循环体的判断指令在循环体之后,所以,至少执行1次循环体,即至少循环1次。执行LOOP指令时,CPU自动将CX的值减1,若CX=0,则结束循环;否则,重复执行循环体。2.汇编语言离开程序回到DOS应使用哪个IN...
高分!!汇编语言的若干问题
1、汇编语言是编译型还是解释型?(或许汇编语言不能这么表述)编译型 2、汇编语言是否像高级语言一样,即便是相同的硬件也有很多种汇编语言?一般只有一种 3、汇编语言编写的程序在不同硬件上未必通用,这是因为硬件(如cpu)机器码与功能不同,那么是否像java一样,用一种汇编语言写一次汇编源码,在...
汇编语言的问题!!!为什么书上写shr ax,3是错误的,而shr cx,1是对的...
书写错误,应该是:shr ax,3 这种表达方式,tasm编译器是支持的,它在汇编时会自动转化为3条shr ax,1,但masm编译器不支持这种用法,请在源代码中用3条 shr ax,1 替代。比如AX=1001010010101111,SHL AX,1后,AX=0010100101011110, CF=1 比如AX=0001010010101111,SHL AX,1后,AX=0010100101011110,...
汇编语言mov的问题?
1、直接就是补码。运算器里全都是按照补码来运算的。2、加法结果并未溢出,仍然是负数。3、教材中的转来转去,其实没太大意义,大概只是想让学生看看原码的样子吧。实际上咬定补码从头教到尾、从头算到尾也根本没问题。
汇编语言LENGTH的问题
等等;length返回的是长度数值,其实就是是最外层dup的数值,如果不是dup,返回的就是1。根据上面的法则,buff db 10dup(?)mov cx,length buff ﹦〉mov cx,10 对 mov cx,size buff ﹦〉mov cx,20 不对,应该是 mov cx,10 (因为buff是字节,所以type=1,size=type×length=1*10=10)...
汇编语言存储单元问题
首先,由地址表达(1280AH)知道,系统是16位的,而不是大于16位的。所以一个字点2字节。其次,由于系统是16位的,所以0ABCDH代表的是一个字,16位,2个字节,所以存储是 低位字节:CD,高位字节:AB,没有更高的位了,所以没有前面补0的情况。只有C正确(没有最下面的那个方格)。再次:如果是(...
2道汇编语言,问答案,及为什么
1、立即数只能存放在代码段中。(正确)2、间接寻址不能同时用于目的和源操作数。(正确)3、指令AND AL,0和指令MOV AL,0执行后的结果完全一样。(正确)4、字符串操作指令可以使用重复前缀来实现块操作。(正确)5、NOP指令不使CPU执行任何操作,因此执行它不需要任何时间。(正确)三、阅读下面的...
8086汇编语言DIV指令的问题
80x86 中的除法指令(如:DIV CX、DIV BL)时,是有可能溢出的。如果被除数较大,或除数较小,都可能使“商”超出预定位数,此时,就会溢出。特别是当除数为零时,必然会出现:Divide overflow。直接使用 DIV 指令,有一定的风险,一不小心就溢出了。特别是数字不明确的时候。因此,在执行 DIV ...
单片机汇编语言的几个疑问
我个人当初几乎都是这样找出的问题 大的汇编程序的调试确实比较麻烦,首先要求你对软件流程很清晰,对单片机的运行模式也要很了解。至于你现在的程序如果有问题,我建议还是采用仿真设断点的方式来找问题,尤其是如果搞单片机的时间不长的话,这样其实可能更快些。希望所说能对你有所帮助。
汇编语言指令的一些小问题
一位数,它只能表示:0~9。表示较大的数,就得用两位:0~99。两位数,可以理解成,高位、低位。两个“两位数”相加,先加低位,再加高位(还要考虑低位的进位)。--- 16 位的计算机,每次,所能处理的一个数,只是两个字节。表示较大的数,就得用两部分,高位、低位,各两个字节。书上说的...