汇编AX的问题 按理说,AX是寄存器,里面装的是数据,也就是0、1组成的二进制数,你要知道,不管是文字、字母、数字什么的,在计算机中存储的都是二进制数。例如字母,它是字符,我们知道,字符都有对应的ASCII码,ASCII码就是表示字符的数字,在计算机中换算成二进制保存。其实不止是寄存器,段寄存器、内存单元、磁盘等等,都是以二进制数保存数据的。AX作为16位寄存器,可以保存2个字符,因为字符的ASCII码都是8位数字。AX保存字符时,可以高8位保存一个,低8位保存一个。至于你说的16位2进制数能保存多少个字母?这个概念有点混淆。16位2进制数就是数,不是字母(就算是表示字母,也是字母的ASCII码)。这个数是2进制的,也就是说它只由0和1组成。这个数是16位的,也就是说它由16个0或者1组成。汉字是两个字节(16位),要装到AX中,只能装一个汉字。至于你说的一部词典能不能装下,这个有点夸张吧。词典的话,应该属于大量数据,再怎么样也是放到数组(内存中)里保存,不可能交给一个16位寄存器啊。词典和词的关系就像数组和元素的关系,我们是从数组中取出一个元素交给寄存器保存,然后进行相关的计算,而不可能说,把整个数组给寄存器保存。没有这样的说法。就算是要把数组交给寄存。
编写一个程序 统计寄存器AX中二进制位“1”的个数,结果以1位十六进制数的形式显 用汇编 我假定给AX一个数,再统计“1”的个数。我调试了的,答案运行正确CODE SEGMENTASSUME CS:CODESTART:MOV AX,1234HXOR CX,CXXOR DX,DXMOV CL,16ABC:SHL AX,1JNB EXITINC DLEXIT:LOOP ABCCMP DL,10JB RRRADD DL,7RRR:ADD DL,48MOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START
用MOV指令将十进制数56以非压缩bcd码送AX.请写出正确指令 答案是MOV AX,0503H,怎么算出来的?应该是MOV AX,0506H,非压缩的BCD码就是用8位两进制表示一位BCD,这样56的5需要。
下面的汇编语言程序用来将AX寄存器中的十六进制数转换为十进制数的ASCII码。在 【 参考答案:FAR解析:这里需要填写的是过程(子程序)的距离属性,有FAR和NEAR两种。定义为FAR允许过程在段间调用,定义为NEAR只能在段内调用,默认为NEAR。
急!急!急!题目是:从屏幕上输入一个三位数的十进制数,把十进制的值存放在AX寄存器中。 MOV MOV CX,3 MOV BX,0 NEXT:MOV AH,2 INT 21H SUB AL,30H PUSH AX MOV AX,10 MUL BX POP BX ADD BX,AX LOOP NEXT MOV AX,BX;结束
在8088系统中,已知当前SS寄存器的内容为2345H,SP的内容为0100H,请说明该堆栈段在存 ss 保持2345h 不变,栈底 sp 为0100h,则栈的大小为 100h 即256 个字节,范围从 00h~100h。若栈中已压入10个字节,则 sp=100h-0ah=F6h
编程将寄存器AX中的二进制数转换为ASCII码 结果放在ASCBUF开始的连续5个内存单元中 ;你们老师题目出得不太准确。按所给程序,严格说来,应该是把(ax)中的数据,转换为10进制数,各位上的数字以ASCII码值放在ASCBUF中。dseg segmentascbuf db 5 dup(0)dseg endsassume cs:cseg,ds:dsegcseg segmentstart:mov ax,dsegmov ds,axmov ax,0abcdh;这个数据你自己定call bintoascmov ah,4chint 21hBINTOASC PROC NEARMOV CX,10LEA SI,ASCBUF+4BTOA1:CMP AX,10JB BTOA2XOR DX,DXDIV CXOR DL,30HMOV[SI],DLDEC SIJMP BTOA1BTOA2:OR AL,30HMOV[SI],ALRETBINTOASC ENDPcseg endsend start看来你还没掌握汇编程序的基本结构啊,努力吧,少年。
微机原理: 编程程序,将AX寄存器中的4位十进制数转换为4个ASCII码,依次存放在BUF开始的4个连续字节单元