几个简单的汇编语言问题
是的,两个操作数不能同时为段寄存器。段寄存器是存放基地址的,且CS寄存器不能用作,只能同时有且只有一个。
立即数可以间接的传给段寄存器,如例用AX,BX等,
MOV [AX],BH ;错,AX不能加方括号来访问地址
MOV [SP],AX ;错,SP不能加方括号
OUT 10H,CL ;错,OUT指令中源操作数只能是AX或AL
CMP 36H,AL ;错,CMP指令中目的操作数不能为立即数
2.标号作符号地址使用,出现在操作数域时,语句JMP BEGIN 中符号BEGIN表示的是目标地址;而在语句LOOP BEGIN中却是同时表示目标地址和偏移地址,它们之间有什么区别吗?为什么要有这样的区别呢?
JMP指令可以访问内存的任何空间,LOOP则只能访问—128~+127之间的内存空间,所以是相对位移。
3。段边界定义SEGMENT.....END和过程定义PROC...ENDP和模块定义NAME....END有什么区别?谢谢问题补充:
这个要去了解段、过程和模块的区别。
间接寻址只能用bx,dx,si,di吗?out和in的操作只能用ax,dx吗?
间接寻址只能用bx,dx,si,di。out和in的操作中只能用ax,al,dx和0~255的立即数端口地址
1.没对的。【】里面的应该是bx,DX,DI,SI。out不应该用cl寄存器。CMP AL,36H
里面的应该是bx,DX,DI,SI。out不应该用cl寄存器。CMP AL,36H
一道简单的汇编语言问题求详细解答
XOR ax,ax ;ax清零 mov bx,2 ;bx=2 mov cx, 4 ;cx=4做循环用 MOV DX,3 ;dx=3;l20:inc ax ;ax=ax+1 adc bx,ax ;bx=ax+bx+cf这个是防止溢出,SHR DX,1 ;移位指令,将DX进行移位,该指令会影响cf位。右移指令,是将最低位移入CF,CF位移入最高位。loope l20 ...
汇编语言问题
; 题目类别:将一段英文文章中的大小写字母互转大小写;统计出每个字母出现的次数,在屏幕显示,每显示一个字母发出一声提示音 ; 题目来源:http:\/\/zhidao.baidu.com\/question\/127760427.html ; 程序使用说明:; 1、提示输入不超过254个字符的一段英文文章;; 2、统计每个字母出现的次数,区别对待...
汇编语言的高手请进,问几个简单题目
1 XOR AL,AL INC AL NEG AL INC AL MOV BL,7FH ADC AL,BL 答:上述程序运行后,AL=80H,CF=0 2 下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置非0。试把空白处填上适当的指令(一个空白只填一条指令)。答: xor ah,al AND AH,08H jz ZERO...
一个简单的编写汇编语言程序的问题
键入字符就是DOS功能调用:MOV AH,0AH ;键盘输入字符串 (10号\/0A调用)INT 21H ;从键盘上往指定缓冲区中输入字符串并送显示器显示
问大家一个汇编语言的问题
这样,内存单元偏移地址为0024h的单元的内容就是04h,0025h单元的内容为00h(data1为字类型),0026H单元的内容为12H,0027H单元的内容为00H。这时,$的值为0028H,加上4,结果是002CH。所以0028单元的值为2CH,0029H单元的值为00H。那么将data1+4的内容送入ax,ax的值就是data1开始的第4个字...
请教一道简单的汇编语言题
(1) DA1+2字节单元的内容是( 'M' )。;;按顺序DA1+2字节单元比DA1往下走3个单元 (2) COUNT的值是( 12 )。伪指令语句语句“COUNT EQU $-DA1”在逻辑数据段内不会分配地址的,其作用在汇编时,用$-DA1(即12)替换指令中的COUNT符号。'M' 为字符M的ASCII编码。
汇编语言问题 急 谢谢
ACALL DISPLAY ;显示 ACALL DEL1MS ;延时 ACALL DEL1MS ;ACALL DEL1MS ;DJNZ R1, A2 ;---循环220遍 --- 2.ACALL BCD ;BCD调整 这一行是调用子程序,不是BCD调整,是BCD码分离。BCD:;将显存中的数字分分两个BCD码存于50H和51H单元中,用于显示十位和个位 MOV A, DAT ...
初学汇编,有些简单的问题想问问大家。谢谢
篇幅过长,我已经把他简化了 MUL的功能是两个带符号数相乘 IMUL src 字节型乘法: AX = (AL)*src 字乘法: DX(高字),AX(低字节) = (AX)*(src)因为BL=10,AL=9CH 且IMUL BL 即字节型乘法 所以AX = (AL)*10 9CH = 1001 1100 因为符号位为1,所以9CH的值是负的 因为负数在计算机...
一道简单的汇编语言问题求详细解答
那么dx里面开始有两个1(二进制),所以,loope总共跳转成功两次,那么bx加了3个数 bx=1+2+3 然后结束。所以bx为6 对不起,前面有几个地方说错了,还有你的前面代码没仔细看。解释如下:首先bx是初始为2的,其次循环只做了2次,而不是3次,因为0000 0011右移第一次还不会为0,所以loop跳转成功...
一道简单汇编语言的问题
我是来支持楼上的,是1300H。解释一下SHL AX CL SHL(Shift Logic Left)逻辑左移指令 在带AX,CL操作数的情况下,是将AX左移CL位,右边补0,左边溢出位进入标志位C(标志寄存器的变化我不太清楚了,如有必要可以写个例程试一下)这道题CL=4,二进制左移四位正好是十六进制左移一位,右边补0,...
洪耐止嗽:[答案] 1.外部RAM1000H单元内容送寄存器R2中 MOV DPTR,#1000H MOVX A,@DPTR MOV R2,A 2.内部RAM20H单元内容送外部RAM 1000H单元 MOV A,20H MOV DPTR,#1000H MOVX @DPTR,A 3外部RAM20H单元内容送外部RAM1000H单元 MOV ...
阳曲县13585226877: 几个简单的汇编问题~~?
洪耐止嗽: 1、 (1)寄存器间接寻址 lea bx,table add bx,8 mov dx,[bx] (2)寄存器相对寻址 lea bx,table mov dx,[bx+8] (3)基址变址寻址 lea bx,table mov si,8 mov dx,[bx][si] 2、 Z<--(W-X)/(5*Y)*2 mov ax,w sub ax,x mov bx,2 imul bx push dx push ax mov ax,5 mul y ...
阳曲县13585226877: 几个简单的汇编语言问题 - ?
洪耐止嗽: 1.判断下列汇编语句的正确性并说明原因 MOV [AX],BH ;错,AX不能加方括号来访问地址 MOV [SP],AX ;错,SP不能加方括号 OUT 10H,CL ;错,OUT指令中源操作数只能是AX或AL CMP 36H,AL ;错,CMP指令中目的操作数不能为立即数...
阳曲县13585226877: 关于汇编语言的两个简单问题 - ?
洪耐止嗽: 1、(1) mov ax,data+198(2) mov si,offset data add si,198 mov ax,[si](3) 实在想不起来什么了………… -_=|||2、AX=0300 内存中数据分配是这样的01 00 03 00 x+1,指向的字空间就是 00 03,换算成数字(低位在后,高位在前)就是0300h了
阳曲县13585226877: 一个简单的汇编问题 - ?
洪耐止嗽: 出栈后sp指针的值加2,所以sp=000CH+2=000EH 栈顶物理地址=ss*16+sp=00A80H+000EH=00A8EH 堆栈是先进后出、后进先出结构,基本单位是字(两个字节).所以,进栈(PUSH)的时候,堆栈指针(SP)减2,把数据(字)压入栈顶;出栈(POP)的时候,把数据弹出给指定的寄存器,堆栈指针加2.堆栈是一种数据结构,用SS表示堆栈的段地址、SP表示堆栈的偏移地址(栈顶),与堆栈指令(PUSH和POP)配合使用、紧密相连,这是汇编语言的规定.程序=数据结构+算法.
阳曲县13585226877: 简单的汇编题目!(我是初学者,麻烦大家进来看看帮帮忙啊) - ?
洪耐止嗽: 1、指令MOV AX,CNT GT 20H中的CNT GT 20H是一个逻辑表达式,CNT是一个常量,前面已经赋值,CNT='A',大写字母'A'的ascii码是:41h,大于20h,所以这个表达式的值是'真'(汇编语言中,真=-1,假=0,许多高级语言也是这样规定的),-1的16位补码表示就是FFFFH. 2、MOV BX,LENGTH TAB BX=1 长度属性操作符(LENGTH)是针对内存变量的操作符,它返回重复操作符DUP中的重复数.如果有嵌套的DUP,则只返回最外层的重复数;如果没有操作符DUP,则返回1. 实际上,长度属性操作符(LENGTH)是返回数组元素的个数.
阳曲县13585226877: 汇编语言 简单问题 求高手帮忙?
洪耐止嗽: momv al, 40h 你写反了mov al, 40h当然合法,40h表示16禁止的40,相当于10进制的64
阳曲县13585226877: 几个关于汇编语言的问题 急用 谢谢 - ?
洪耐止嗽: 1.loop循环功能应配合哪个缓存器 CX寄存器 LOOP指令,是循环指令,循环次数由计数寄存器CX指定.是否执行循环体的判断指令在循环体之后,所以,至少执行1次循环体,即至少循环1次.执行LOOP指令时,CPU自动将CX的值减1,若...
阳曲县13585226877: 有关汇编语言的几个简单问题(如:两个操作数不能同时为段寄存器) - ?
洪耐止嗽: 是的,两个操作数不能同时为段寄存器.段寄存器是存放基地址的,且CS寄存器不能用作,只能同时有且只有一个.立即数可以间接的传给段寄存器,如例用AX,BX等,
阳曲县13585226877: 汇编语言问题(超简单)!!?
洪耐止嗽: 如:一个二进制数(16位) 1111111100000000,用10进制表示是65280,16进制表示是0XFF00 其中FF(2进制11111111)是高8位,00(2进制00000000)是低8位